#ifndef BASEDOCK_H
#define BASEDOCK_H
#include "qdock.h"
#include "containers.h"



class QBaseDock : public QDockItemContainer {
    Q_OBJECT
public:
    QBaseDock(QWidget* parent = 0);
    bool undocked(){
        return false;
    }
    Window window(){
        //TODO
        return 0;
    }
public://candidates for upstream
    virtual void setCenterWidget(QWidget* widget);
    virtual QWidget* centerWidget(){return m_centerwidget;}
    virtual void dock(QDockItem *dragged_widget, DockOption dockoption);
    virtual bool noContent();
public:
    virtual void replaceWidget(QWidget *old_widget, QWidget* new_widget);
    virtual void removeWidget(QWidget* widget);
//    void resizeEvent(QResizeEvent * ev);
protected:
    void setLayoutWidget(QWidget* widget);
protected:
    QLeftIndicator* m_left;
    QRightIndicator* m_right;
    QTopIndicator* m_top;
    QBottomIndicator* m_bottom;
    QTabbedIndicator* m_tabbed;
    QWidget* m_centerwidget;
    QWidget* m_layout;
};

#endif // BASEDOCK_H
